package com.hs.egova.mapping;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.multipart.MultipartFile;

import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;

/**
 * @author husheng
 * @version v1.
 * @date 221/7/3 14;43
 * @email husheng@egova.com.cn
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class PartyOrgVo {

    @ApiModelProperty("")
    private Integer id;

    @ApiModelProperty("社区编码")
    private Integer communityId;

    @ApiModelProperty("所属社区")
    private String communityName;

    @ApiModelProperty("通讯地址")
    private String contactAddress;

    @ApiModelProperty("传真号码")
    private String contactConstNum;

    @ApiModelProperty("企业控制（控股）情况")
    private String corporateHoding;

    @ApiModelProperty("法人单位标识")
    private String corporateIdentity;

    @ApiModelProperty("法人代表（单位负责人）")
    private String corporateRep;

    @ApiModelProperty("是或者否")
    private String corporateRepParty;

    @ApiModelProperty("法人代表是否党员标识 默认0 0 -否 1-是")
    private String corporateRepPartyFlag;

    @ApiModelProperty("企业规模")
    private String corporateScale;

    @ApiModelProperty("区域代码")
    private Integer districtId;

    @ApiModelProperty("所属区域")
    private String districtName;

    @ApiModelProperty("在岗职工数（人）")
    private Integer employeeOnDutyNum;

    @ApiModelProperty("网格编码")
    private Integer gridId;

    @ApiModelProperty("所属网格")
    private String gridName;

    @ApiModelProperty("户数（户）")
    private Integer householdNum;

    @ApiModelProperty("录入人员标识")
    private Integer humanId;

    @ApiModelProperty("录入人员名称")
    private String humanName;

    @ApiModelProperty("事业单位类别标识")
    private Integer institutionTypeId;

    @ApiModelProperty("事业单位类别")
    private String institutionTypeName;

    @ApiModelProperty("中介组织标识")
    private String intermediaryOrg;

    @ApiModelProperty("中介组织标识标识 默认为0 0 -否 1-是")
    private Integer intermediaryOrgFlag;

    @ApiModelProperty("是否建有工会")
    private String labourUnion;

    @ApiModelProperty("是否建有工会标识 默认为0 0 -否 1-是")
    private Integer labourUnionFlag;

    @ApiModelProperty("百度坐标纬度")
    private Double latitude;

    @ApiModelProperty("百度坐标经度")
    private Double longitude;

    @ApiModelProperty("党组织介绍")
    private String orgIntroduction;

    @ApiModelProperty("阵地介绍")
    private String orgPosition;

    @ApiModelProperty("党组织代码")
    @NotNull(message = "partyCode不能为空")
    private String partyCode;

    @ApiModelProperty("党组织名称")
    @NotNull(message = "partyName不能为空")
    private String partyName;

    @ApiModelProperty("党组织所在行政区划")
    private String partyOrgAdmDivision;

    @ApiModelProperty("建立党组织日期")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date partyOrgBuildTime;

    @ApiModelProperty("党组织联系人")
    private String partyOrgContactHuman;

    @ApiModelProperty("党组织联系电话")
    private String partyOrgContactPhone;

    @ApiModelProperty("属地关系")
    private String partyOrgRelation;

    @ApiModelProperty("党组织书记")
    private String partyOrgSecretary;

    @ApiModelProperty("党组织类别标识")
    private Integer partyOrgTypeId;

    @ApiModelProperty("党组织类别")
    private String partyOrgTypeName;

    @ApiModelProperty("人口（人）")
    private Integer personNum;

    @ApiModelProperty("邮编")
    private String postcode;

    @ApiModelProperty("民营科技企业标识标识 默认为0 0 -否 1-是")
    private Integer privateTecFlag;

    @ApiModelProperty("单位隶属关系")
    private String refUnitDependency;

    @ApiModelProperty("党组织所在单位情况")
    private String refUnitInfo;

    @ApiModelProperty("单位名称")
    private String refUnitName;

    @ApiModelProperty("单位建立党组织情况")
    private String refUnitPartyBuildInfo;

    @ApiModelProperty("单位性质类别标识")
    private Integer refUnitTypeId;

    @ApiModelProperty("单位性质类别")
    private String refUnitTypeName;

    @ApiModelProperty("社会统一信用代码")
    private String socialCreditCode;

    @ApiModelProperty("社会服务机构类别标识")
    private Integer socialServiceTypeId;

    @ApiModelProperty("社会服务机构类别")
    private String socialServiceTypeName;

    @ApiModelProperty("拆分党组织标识")
    private Integer splitFromPartyId;

    @ApiModelProperty("街道编码")
    private Integer streetId;

    @ApiModelProperty("所属街道")
    private String streetName;

    @ApiModelProperty("在岗专业技术人员数（人）")
    private Integer technicalNum;

    @ApiModelProperty("座机号码")
    private String telephoneNumber;

    @ApiModelProperty("党组织树编码")
    private String treeCode;

    @ApiModelProperty("党组织树级别")
    private Integer treeLevel;

    @ApiModelProperty("在岗职工中工人数（人）")
    private Integer workerNum;

    @ApiModelProperty("父级党组织树编码")
    private String seniorTreeCode;

    @ApiModelProperty("父级党组织树级别")
    private Integer seniorTreeLevel;

    @ApiModelProperty(value = "党组织介绍附件多媒体")
    private MultipartFile[] orgIntroductionFileList;

    @ApiModelProperty(value = "阵地介绍附件多媒体")
    private MultipartFile[] orgPositionFileList;

    @ApiModelProperty(value = "拆分需要转移的党员")
    private List<Integer> memberIds;
}
